package cn.tedu.serrch.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;

@Data
@Accessors(chain = true)  //支持链式set赋值
@AllArgsConstructor       //此注解会自动生成该类全参数的构造方法
@NoArgsConstructor        //此注解会自动生成该类无参数的构造方法
// Document注解，会标记该类是ES框架对应的实体类
// 属性indexName表示指定ES中对应的索引名称，且运行时，该索引不存在时，SpringData会自动创建
@Document(indexName = "items")
public class Item implements Serializable {


    // SpringData通过@Id注解来标记当前实体类的主键
    @Id
    private Long id;
    @Field(type = FieldType.Text,
            analyzer = "ik_max_word",
            searchAnalyzer = "ik_max_word")
    private String title;
    //FieldType.Keyword表示当前字段是不需要分词的字符串
    @Field(type = FieldType.Keyword)
    private String category;
    @Field(type = FieldType.Keyword)
    private String brand;
    @Field(type = FieldType.Double)
    private Double price;
    @Field(type = FieldType.Keyword,index = false)
//    “index=false“ 表示不创建索引，可以节省空间
//    所谓的不创建索引，指的是不会为当前字段创建索引列表的，但是数据还是会保存到ES中
    private String imgPath;




}
